package com.czm.art_light.param.request;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;

/**
 * 反馈内容 请求DTO
 */
@Schema(description = "反馈内容 请求DTO")
@EqualsAndHashCode(callSuper = false)
@Data
public class ArtUserFeedbackReqDto implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 反馈类型ID（关联反馈类型表）
     */
    @Schema(description = "反馈类型ID（关联反馈类型表）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "反馈类型不能为空")
    private Integer typeId;

    /**
     * 用户联系方式（邮箱、电话、微信等）
     */
    @Schema(description = "用户联系方式（邮箱、电话、微信等）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "联系方式不能为空")
    private String contactInfo;

    /**
     * 反馈内容
     */
    @Schema(description = "反馈内容", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "反馈内容不能为空")
    @Size(max = 1000, message = "反馈内容过长")
    private String content;

    /**
     * 反馈图片链接（JSON 数组格式）
     */
    @Schema(description = "反馈图片链接（JSON 数组格式）")
    private String imageUrls;
}
